Fix my slightly broken change to pirq_mask logic -- we must
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 7 Apr 2006 15:15:44 +0000 (16:15 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 7 Apr 2006 15:15:44 +0000 (16:15 +0100)
pass the last seen bit *plus 1* to find_next_bit().

Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/ia64/xen/irq.c
xen/arch/x86/irq.c

index e7d0862d9cb3f12e2a6e75297ad1740e281e005f..350ec724350390ed72c68ff41a96aabc0bd2cd95 100644 (file)
@@ -1363,7 +1363,7 @@ int pirq_guest_unmask(struct domain *d)
 
     for ( pirq = find_first_bit(d->pirq_mask, NR_PIRQS);
           pirq < NR_PIRQS;
-          pirq = find_next_bit(d->pirq_mask, NR_PIRQS, pirq) )
+          pirq = find_next_bit(d->pirq_mask, NR_PIRQS, pirq+1) )
     {
         desc = &irq_desc[pirq];
         spin_lock_irq(&desc->lock);
index 0b9d88037b04bacb024c430e89389a36327cc0a8..5a0749fb4e7cc84c2a925f403592bd8a63d92690 100644 (file)
@@ -176,7 +176,7 @@ int pirq_guest_unmask(struct domain *d)
 
     for ( pirq = find_first_bit(d->pirq_mask, NR_PIRQS);
           pirq < NR_PIRQS;
-          pirq = find_next_bit(d->pirq_mask, NR_PIRQS, pirq) )
+          pirq = find_next_bit(d->pirq_mask, NR_PIRQS, pirq+1) )
     {
         desc = &irq_desc[irq_to_vector(pirq)];
         spin_lock_irq(&desc->lock);